<?php
/**
 *通过code获取微信用户的token和openid
 * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html
 */
namespace WeChat;

use think\facade\Config;

class WeChatUser
{
    /**

     */
    private $app_id;
    private $secret;
    private $grant_type;
    private $js_code;


    /**
     * code 换取 session_key
     * ​这是一个 HTTPS 接口，开发者服务器使用登录凭证 code 获取 session_key 和 openid。
     * 其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全，session_key  不应该在网络上传输。
     *
     * 获取session_key和openid
     * @param $code
     * @return array|mixed  包含session_key和openid的一个一维数组
     *
     */
    public function weChatUser($code)
    {
        $url = "https://api.weixin.qq.com/sns/jscode2session";
        $this->app_id = (Config::get("private"))['p_app_id'];
        $this->secret = (Config::get("private"))['p_app_secret'];
        $this->grant_type = 'authorization_code';
        $this->js_code = $code;
        $url = $url."?appid={$this->app_id}&secret={$this->secret}&js_code={$this->js_code}&grant_type={$this->grant_type}";
        $result = curlHttp($url);
        if(empty($result['session_key']) || empty($result['openid']))
        {
            returnJson(-2004,'错误码:'.$result['errcode'].",错误信息:".$result['errmsg']);
        }
        return $result;
    }



}